NOMON I,O,C SPEED=255 62999 END 63000 TEXT : CALL - 936: CLEAR :C$ = CHR$ (4): PRINT "**** PROGRAM LISTING FORMATTER ****": PRINT "**** BY TONY S. DAHBURA ****" 63010 POKE 34,3: PRINT : PRINT : CALL - 936: DIM D$(107): GOSUB 63250 63020 PRINT : INPUT "SLOT OF PRINTER (0 FOR SCREEN) ";B: IF B < 0 OR B > 7 THEN 63020 63030 PRINT : INPUT "TURN ON PRINTER AND PRESS 'RETURN' ";A$: PRINT C$;"PR#";B: PRINT : PRINT CHR$ (19) 63040 PRINT : INPUT "SET TOP OF FORM ETC. AND PRESS 'RETURN' ";A$: PRINT : CALL - 936 63050 INPUT "# OF LINES AT TOP OF PAGE ";E: PRINT : INPUT "# OF LINES AT BOTTOM OF PAGE ";F: PRINT : PRINT : INPUT "LEFT MARGIN ";G: PRINT : INPUT "RIGHT MARGIN ";H:I = H - G: IF I < = 0 THEN 63050 63060 PRINT : INPUT "# OF LINES PER PAGE ";J: CALL - 936: PRINT : PRINT "IF YOU PRESS ESC DURING PRINTING": PRINT "YOU MAY HALT LISTING": PRINT : INPUT "PRESS 'RETURN' TO START ";A$:A$ = "" 63070 POKE - 16368,0:K = 0: PRINT CHR$ (17): FOR P = 1 TO E: PRINT : NEXT 63080 L = PEEK (104) * 256 + PEEK (103):M = PEEK (176) * 256 + PEEK (175):N = 256 * PEEK (L + 1) + PEEK (L) 63090 A = PEEK (L + 3) * 256 + PEEK (L + 2):A$ = STR$ (A):A$ = A$ + " ": IF A < 10 THEN A$ = A$ + " " 63100 IF A = > 62999 THEN C = 32:L = M: GOTO 63140 63110 L = L + 4 63120 C = PEEK (L): IF PEEK ( - 16384) > 127 THEN GOTO 63420 63130 IF C > 127 AND C < 235 THEN GOSUB 63220: GOTO 63150 63140 A$ = A$ + CHR$ (C): IF L = > M THEN PRINT : PRINT : PRINT CHR$ (12): PRINT : PRINT : PRINT C$;"PR#0": PRINT : PRINT : PRINT "LISTING IS COMPLETE": PRINT : PRINT "DONE": TEXT : END 63150 IF L + 1 = N THEN 63180 63160 IF L > N THEN PRINT "ERROR": PRINT A$: STOP 63170 L = L + 1: GOTO 63120 63180 N = 256 * PEEK (N + 1) + PEEK (N):L = L + 1: GOTO 63340 63190 L = L + 2:A$ = "":A = PEEK (L) + PEEK (L + 1) * 256:A$ = STR$ (A):A$ = A$ + " ": IF A < 10 THEN A$ = A$ + " " 63200 IF A = > 62999 THEN C = 32:L = M: GOTO 63140 63210 L = L + 2: GOTO 63120 63220 A$ = A$ + D$(C - 127): IF D$(C - 127) = "HIMEM" THEN A$ = A$ + ":" 63230 IF D$(C - 127) = "LOMEM" THEN A$ = A$ + ":" 63240 RETURN 63250 RESTORE 63260 READ D$(1): IF PEEK (123) + PEEK (124) * 256 = 63290 THEN 63280 63270 GOTO 63260 63280 FOR O = 2 TO 107: READ D$(O): NEXT : RETURN 63290 DATA END,FOR,NEXT,DATA,INPUT,DEL,DIM,READ,GR,TEXT,PR#,IN#,CALL,PLOT,HLIN,VLIN,HGR2,HGR,HCOLOR=,HPLOT,DRAW,XDRAW 63300 DATA HTAB,HOME,ROT=,SCALE=,SHLOAD,TRACE,NOTRACE,NORMAL,INVERSE,FLASH,COLOR=,POP,VTAB,HIMEM,LOMEM,ONERR 63310 DATA RESUME,RECALL,STORE,SPEED=,LET,GOTO,RUN,IF,RESTORE,&,GOSUB,RETURN,REM,STOP,ON,WAIT 63320 DATA LOAD,SAVE,DEF,POKE,PRINT,CONT,LIST,CLEAR,GET,NEW,TAB(,TO,FN,SPC(,THEN,AT,NOT,STEP,+,-,*,/,^,AND,OR,>,=,<,SGN,INT,ABS,USR,FRE,SCRN(,PDL,POS,SQR,RND 63330 DATA LOG,EXP,COS,SIN,TAN,ATN,PEEK,LEN,STR$,VAL,ASC,CHR$,LEFT$,RIGHT$,MID$ 63340 IF LEN (A$) > I THEN 63390 63350 PRINT TAB( G);A$:K = K + 1 63360 IF K = > J THEN GOSUB 63380: GOTO 63190 63370 GOTO 63190 63380 FOR P = 1 TO F: PRINT : NEXT : FOR P = 1 TO E: PRINT : NEXT :K = 0: RETURN 63390 B$ = A$:D = 1:A$ = LEFT$ (A$,I): PRINT TAB( G);A$:K = K + 1: IF K = > J THEN GOSUB 63380 63400 A$ = RIGHT$ (B$, LEN (B$) - I * D): IF LEN (A$) > I THEN A$ = MID$ (B$,I * D,I): PRINT TAB( G);A$:D = D + 1: GOTO 63400 63410 PRINT TAB( G);A$:K = K + D: GOTO 63360 63420 IF PEEK ( - 16384) = 155 THEN PRINT : PRINT : PRINT CHR$ (12): PRINT : PRINT : PRINT C$;"PR#0": PRINT : PRINT : PRINT "LISTING TERMINATED": TEXT : END 63430 POKE - 16368,0: GOTO 63130